package unrn.isiii.bean.rest;

import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import unrn.isiii.dao.IUsuarioDao;
import unrn.isiii.model.Usuario;

@Component
@Path("/usuario")
public class UsuarioRestService {

	@Autowired
	IUsuarioDao iUsuarioDao;

	@POST
	@Path("/login")
	@Consumes(MediaType.APPLICATION_JSON)
	@Produces(MediaType.APPLICATION_JSON)
	public Mensaje login(Usuario userFormCliente) {

		try {
			Usuario user = getiUsuarioDao().findByUserName(userFormCliente.getUsuarname());
			
			if (getiUsuarioDao().login(user, userFormCliente.getPassword())){
				return new Mensaje(true, "ok");
			}else{
				return new Mensaje(false, "Usuario y/o Clave Incorrecta");
			}		
			
		} catch (Exception e) {
			return new Mensaje(false, "Usuario y/o Clave Incorrecta");
		}

	}
	
	
	@GET
	@Path("/{usuario}")
	@Produces(MediaType.APPLICATION_JSON)
	public Usuario usuarioByUsername(@PathParam("usuario") String usuario) {

		try {
			return getiUsuarioDao().findByUserName(usuario);
		} catch (Exception e) {
			return null;
		}

	}

	@GET
	@Path("/crear")
	@Produces(MediaType.APPLICATION_JSON)
	public Mensaje login() {

		try {
			getiUsuarioDao().create(
					new Usuario("chicho", "123", "sdasd@sadasd.com",
							"asdas asdas"));
			return new Mensaje(true, "ok");
		} catch (Exception e) {
			return new Mensaje(false, "Error");
		}

	}

	@GET
	@Path("/lista")
	@Produces(MediaType.APPLICATION_JSON)
	public List<Usuario> lista() {

		try {

			return getiUsuarioDao().findAll();
		} catch (Exception e) {
			return null;
		}

	}

	public IUsuarioDao getiUsuarioDao() {
		return iUsuarioDao;
	}

	public void setiUsuarioDao(IUsuarioDao iUsuarioDao) {
		this.iUsuarioDao = iUsuarioDao;
	}

}